[英]TypeScript and type aliases
據我所知,TypeScript允許為任何類型創建別名。 如:
type MyNum = number;
var y: MyNum;
y = 33; // it's ok
但是后續代碼無效:
type MyType = Object;
const dt = new MyType(); // here is an error: 'MyType only refers to a type, but is being used as a value here'
我錯在哪里,我怎么能創建MyType的實例?
類型別名僅用於編譯時,它們不會被轉換為已編譯的javascript代碼。
您的第一個代碼編譯為:
var y;
y = 33;
如你所見, MyNum
沒有任何內容。
但是,在您的第二個代碼段中,您嘗試將MyType
用作值而不僅僅是一個類型。
編譯器不允許這樣做,因為在運行時MyType
不存在,因為它編譯為:
var dt = new MyType();
類型別名,就像接口(和一般類型)僅用於編譯一樣,因此您不能將它們用作值。
要創建MyType
實例,在這種情況下:
const dt1: MyType = {};
const dt2: MyType = new Object();
const dt3: MyType = Object.create({});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.