Ошибка типа формы Ant Design при отправке значений - PullRequest
0 голосов
/ 04 августа 2020

Я использую Ant Design + TypeScript в своем приложении React. У меня есть форма дизайна Ant, в которой я хочу ввести объект результата. Метод, при котором возникает ошибка типа, выглядит следующим образом:

form.validateFields().then((values: MyInterface /* type error */) => { ... })

Если посмотреть на определение типа values и MyInterface, они определены следующим образом:

type StoreValue = any;
interface Store { /* values is of type Store */
  [name: string]: StoreValue;
}

interface MyInterface {
  name: string;
  short: string;
}

Теперь мы видим этот Store должен принимать любую пару ключ-значение string -> any Я не понимаю, почему я получаю там ошибку.
Есть идеи?

Изменить

Мне удалось воспроизвести ошибку:

interface Store {
  [name: string]: any;
}

interface Test {
  name: string;
  short: string;
}

function f() {
  return new Promise((resolve: (value: Store) => void, reject) => {
    resolve({ name: '', short: '' });
  });
}

// Error:
// Type 'Store' is missing the following properties from type 'Test': name, short
f().then((res: Test) => {
  console.log(res);
});

Ошибка исчезает, когда я удаляю параметр компилятора strict в моем tsconfig.json файле:

{
  "compilerOptions": {
    ...
    "strict": true
    ...
  }
}

Для меня это не имеет особого смысла

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...