Typescript lodash: как объявить словарь для использования.карта?
как объявить словарь с _.карту в лодашь?
вот пример программы 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 }; });
}
он не доволен объявлением вопроса.параметры и дает следующую ошибку.
аргумент типа ' { [key: number]: string; }' не присваивается параметру типа 'List' на _.команда карты
2 ответов
на map
метод определяется следующим образом в DefinitelyTyped:
map<T, TResult>(
collection: Array<T>,
callback: ListIterator<T, TResult>,
thisArg?: any): TResult[];
требует collection
аргумент должен быть массивом, который более специфичен, чем { [key: number]: string }
. Вы должны объявить options
поле как массив для его работы.
этот вопрос был с лодашь.d.ts и обновление его решили проблему.
NuGet для лодашь.машинописный текст.DefinitelyTyped version= "0.3.8"
использует
map<T, TResult>(
collection: List<T>,
pluckValue: string): TResult[];
определение и работ.