Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 类型脚本和类型别名_Javascript_Typescript - Fatal编程技术网

Javascript 类型脚本和类型别名

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的实例

据我所知,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;
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当然可以。谢谢