繁体   English   中英

为什么在VS Code中使用Javascript // // @ ts-check在我的数组上不存在属性'find'? (2018,打字稿2.7x)

[英]Why does property 'find' not exist on my array using // @ts-check on Javascript in VS Code? (2018, typescript 2.7x)

**更新

console.log(Array.isArray(primaryNumberFemales)); // true

我将其导出为:

export {
  primaryNumberFemales,
};

**结束更新

我有一个看起来像这样的数组(当然是对象类型):

const primaryNumberFemales = [{
  name: 'Sky',
  number: 6,
  duality: 'Yang',
  complexity: 'Complex',
  year: [1910,
    1919,
    1928,
    1937,
    1946,
    1955,
    1964,
    1973,
    1982,
    1991,
    2000,
    2009,
    2018,
  ],
},
{
  name: 'Lake',
  number: 7,
  duality: 'Yin',
  complexity: 'Simple',
  year: [1911,
    1920,
    1929,
    1938,
    1947,
    1956,
    1965,
    1974,
    1983,
    1992,
    2001,
    2010,
    2019,
  ],
},
];

我要导入的:

import {
  primaryNumberFemales,
} from './data';

并在导入后确认它是一个对象(因此,没有发生任何有趣的事情):

console.log(typeof primaryNumberFemales); // object

我想在VS Code 1.20.1中键入检查我的JS,所以添加:

// @ ts-check

现在使用下面的代码,对于find每个实例,我在linter中都会遇到一个错误,该程序运行正常!:

  return (gender === 'F') ? {
    primaryNumber: (primaryNumberFemales.find(includesYearOfBirth) || {}).number,
    typeOfExpression: (primaryNumberFemales.find(includesYearOfBirth) || {}).name,
  } : {
    primaryNumber: (primaryNumberMales.find(includesYearOfBirth) || {}).number,
    typeOfExpression: (primaryNumberMales.find(includesYearOfBirth) || {}).name,
  };

类型'{[x:string]:any;不存在属性'find'。 名称:字符串; 数字: 对偶性:字符串; 复杂度:字符串; 年:麻木...'。

我知道Array.prototype.find()是es6,并且过去不支持(以前在此发表过很多文章),但是现在绝对应该支持它。 我的代码有问题吗,还是某种错误? 谢谢!

如果我在脑海中解析代码,则在查看此表达式时:

import { primaryNumberFemales } from './data';

我想知道错误不在这里,因为您的模块没有导出该常量。 为了解决这个问题,我将使用export关键字:

export const primaryNumberFemales = [{
    name: 'Sky',
    number: 6,
    duality: 'Yang',
    complexity: 'Complex',
    year: [1910,
      1919,
      1928,
      1937,
      1946,
      1955,
      1964,
      1973,
      1982,
      1991,
      2000,
      2009,
      2018,
    ],
  },
  {
    name: 'Lake',
    number: 7,
    duality: 'Yin',
    complexity: 'Simple',
    year: [1911,
      1920,
      1929,
      1938,
      1947,
      1956,
      1965,
      1974,
      1983,
      1992,
      2001,
      2010,
      2019,
    ],
  },
  ];

如果通过编译器运行此示例,看起来似乎很高兴,那么我也可以使用Array.find方法。 我已将编译器设置为以ES6为目标。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM