ошибка TS2678 Тип "String" не сопоставим с типом "" "в угловых 5 - PullRequest
2 голосов
/ 06 марта 2019

Вот мой код в угловых 5:

gotToWallet(wallet) {

  const { countryId = '', currencyType = '' } = wallet || {};

  let walletIdentity;

  switch (currencyType) {
    case 'CRYPTO':
      walletIdentity = 'userWalletIdentity';
     break;
    case 'FIAT':
      walletIdentity = 'fiatWalletIdentity';
     break;
    case 'ERC20TOKEN':
      walletIdentity = 'xbxUserWalletIdentity';
     break;
 }

  const { currencyId = '' } = (wallet || {})[walletIdentity] || {};
  this.router.navigate([`walletMgmt/wallet-details/${currencyId}/${countryId}`]);

}

Я получаю следующую ошибку при запуске команды ng build:

ERROR in src/app/wallet-management/wallets/wallets.component.ts(202,12): error TS2678: Type '"CRYPTO"' is not comparable to type '""'.
src/app/wallet-management/wallets/wallets.component.ts(205,12): error TS2678: Type '"FIAT"' is not comparable to type '""'.
src/app/wallet-management/wallets/wallets.component.ts(208,12): error TS2678: Type '"ERC20TOKEN"' is not comparable to type '""'.

Почему я получаю эту ошибку? код, кажется, работает нормально, когда я запускаю ng serve. Я получаю эту ошибку только при попытке сделать сборку.

Спасибо, любая помощь будет принята с благодарностью.

1 Ответ

3 голосов
/ 06 марта 2019

switch (currencyType as any) {

по какой-то причине (может быть, версия с машинописью?), Когда вы уничтожаете currencyType: '' из кошелька, он интерпретировался компилятором как тип "" "" вместо "строка".так что разыграйте, как любой сделает свое дело

...