Alias
Declares an alternative name for an intrinsic type, user-defined Type, Interface, or another Alias. The alias and the original type are interchangeable — assigning between them is not a type mismatch. Comparable to typedef in C/C++.
Note
The Alias statement is a twinBASIC extension. It has no equivalent in classic VBA, where the only use of the Alias keyword is to name a DLL entry point in a Declare statement.
Syntax:
[ Public | Private ] Alias aliasname As type
- Public
- optional The alias is exported to the type library of an ActiveX DLL or control, so consumers in other projects see aliasname itself.
- Private
- optional The alias is visible only within the project. Usages of a Private alias are replaced with the underlying type during compilation, so aliasname never appears in the project’s type library.
- aliasname
- The name of the alias. Must be a valid twinBASIC identifier.
- type
- The original type. May be an intrinsic type, a user-defined Type, an Interface, or another Alias.
Alias statements are valid only in .twin source files (not legacy .bas or .cls files), and must appear at file scope — outside of Module and Class blocks, alongside Interface and CoClass declarations.
Example
Aliasing intrinsic types and a user-defined type:
Public Type POINT
x As Long
y As Long
End Type
Public Alias POINTAPI As POINT
Public Alias CBoolean As Byte
Public Alias KAFFINITY As LongPtr
A variable declared with the alias and a variable declared with the original type are interchangeable:
Dim p As POINT
Dim q As POINTAPI
p = q ' OK — no type mismatch.