Typescript: как получить проверку типов при отображении списка - PullRequest
0 голосов
/ 10 октября 2018

Я использую Typescript 2.9.1.Пример моей проблемы:

type MyType = {
  replaceThisProp: string
}

const instance:MyType = {
  replaceThisProp: 'hello',
}

const instanceList:MyType[] = [instance]

// Misspelling the property here causes an error:
const updatedInstance:MyType = {
    ...instance,
    replaceThisPropp:'Oops'
}

// But here no error is given:
const result: MyType[] = instanceList.map<MyType>(h =>({
  ...h,
  replaceThisPropp:'Oops'
}))

Я понимаю, что Typescript не может определить тип, так как он возвращается в функцию обратного вызова.Но какой наименее подробный способ получить хорошую проверку типов?

1 Ответ

0 голосов
/ 10 октября 2018

[].map разработан для того, чтобы позволить вам изменить тип, поэтому он не знает, что вы намереваетесь вернуть MyType.Вы можете сказать это:

const result = instanceList.map((h)<strong>: MyType</strong> =>({
  ...h,
  replaceThisPropp:'Oops' // now errors.
}))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...