我在list-full-names.ts
里有一个功能模块:
export default function listFullNames(namesList) {
let fullNames: string[] = namesList.map(item => {
return `${item.first} ${item.last}`;
});
return fullNames;
}
和一个文件,该文件导入该函数并向其传递对象数组:
import listFullNames from './list-full-names';
interface NameProps {
first: string;
last: string;
}
const names: NameProps[] = [
{first: 'John', last: 'Smith'},
{first: 'Jane', last: 'Doe'},
{first: 'David', last: 'Bowie'}
];
let fullNames = listFullNames(names);
TypeScrip在list-full-names.ts
上抛出错误,因为它不知道namesList
是什么类型.我知道我可以将NameProps
接口放在一个单独的文件中,然后将其导入到list-full-names.ts
,但将类型定义与它所描述的数据分开感觉很奇怪.我也不喜欢在每个接受names
数组作为可能属性的文件中导入接口.
对于这类事情,有没有最佳实践?建议的处理方式是什么?