使用Lodash和Typescript的奇怪行为

时间:2017-04-27 10:28:38

标签: typescript lodash type-inference

我无法理解为什么布尔值的类型为boolean [] ...

    const obj: { [key: number]: string } = { 1: "Hi", 2: ", there" };
    const booleans = _.chain(obj)
        .keys()
        .map((key: number) => ({ ItemKey: key, ItemText: obj[key] }))
        .value();

任何线索?!以下代码生成一个具有正确类型{ItemKey:number,ItemText:string} []的变量:

    const obj: { [key: number]: string } = { 1: "Hi", 2: ", there" };
    const correctType = _.chain(obj)
        .keys()
        .map(key => ({ ItemKey: parseInt(key), ItemText: obj[parseInt(key)] })) // key is inferred to be string, because keys() returns string[]
        .value();

我正在使用Typescript 2.0.10进行编译,但即使是使用Typescript 2.2.2的VS Code也会对intellisense说同样的事情。

1 个答案:

答案 0 :(得分:0)

这是lodash打字的问题。我会提交拉取请求!

请参阅https://github.com/DefinitelyTyped/DefinitelyTyped/blob/c2bca7c/types/lodash/index.d.ts#L8563