有没有办法让编译器使用类型别名而不是真实类型

时间:2016-11-14 09:14:57

标签: typescript

Imho,在我的代码中查看已解析的类型别名非常有用,尤其是在使用promises或streams时。更多细节:

type FileName = string;

function a(x: FileName): string {
    return x + '!';
}

a(2); // Argument of type 'number' is not assignable to parameter of type 'string'.

那么为什么不使用... parameter of type 'FileName'.呢?在做DDD时会有很多帮助。

现在,关于更真实的例子,

stream.of(...).map(service.fn1).flatMap(service.fn2).map(x => x/*?*/)

在某些时候,我真的很想念这x到底是什么。

那么,有没有办法让编译器使用别名?

1 个答案:

答案 0 :(得分:0)

所以,就我而言,这是一个不懂术语的问题。 TypeScript具有结构类型系统。意味着string = string而不管别名。但是,有办法克服这一点。这是阅读材料:

https://basarat.gitbooks.io/typescript/content/docs/tips/nominalTyping.html