Javascript 类型脚本和类型别名
据我所知,TypeScript允许为任何类型创建别名。例如:Javascript 类型脚本和类型别名,javascript,typescript,Javascript,Typescript,据我所知,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的实例
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;
var dt = new MyType();
正如您所看到的,这里没有关于MyNum
的内容
但是,在第二个代码段中,您试图将MyType
用作值,而不仅仅用作类型。编译器将不允许这样做,因为在运行时,
MyType
编译为以下内容时不存在:
var y;
y = 33;
var dt = new MyType();
类型别名,就像接口(以及一般类型)仅用于编译一样,因此不能将其用作值
编辑 要创建
MyType
的实例,在这种情况下:
const dt1: MyType = {};
const dt2: MyType = new Object();
const dt3: MyType = Object.create({});
const dt:MyType={}
?你能举例说明OP应该做什么吗?@evolutionxbox当然可以。谢谢