Typescript lodash:如何声明要与_.map一起使用的字典?

Xav*_*ohn 6 typescript lodash typescript1.4

如何在lodash中声明一个与_.map一起使用的字典?

以下是TypeScript程序示例.

<reference path="../scripts/typings/lodash/lodash.d.ts" />
interface IQuestionAndOptions {
    text: string;
    options: { [key: number]: string };
}

function sample() {
   var question: IQuestionAndOptions = { text: "Are you happy?", options: {} };
   question['1'] = "Yes";
   question['2'] = "No";

  var values =  _.map(question.options, function (v: string, k: number) {
     return { text: v, value: k }; });
}
Run Code Online (Sandbox Code Playgroud)

它对question.options的声明不满意,并给出以下错误.

类型'{[key:number]:字符串的参数; }'不能在_.map命令中分配给'List'类型的参数

Xav*_*ohn 1

问题出在 lodash.d.ts 上,更新它解决了这个问题。

nuget lodash.TypeScript.DefinitelyTyped 版本 =“0.3.8”

用途

map<T, TResult>(
    collection: List<T>,
    pluckValue: string): TResult[];
Run Code Online (Sandbox Code Playgroud)

定义和作品。