当代码工作时,类型检查程序会抱怨如何将该委托方法分配给属性.
属性fontSize期望类型为number。但是,它是一个转换,并且不知怎么地,有一个带有属性value的字体对象需要转换为number类型。
方法特征提取(对象的破坏?)从字体对象数组中设置value属性。价值的例子是97。
输入: fontObj => {.值}
const onload = () => {
const dv = new DataSet.View().source(data);
const range = dv.range('value');
const [min, max] = range;
dv.transform({
type: 'tag-cloud',
fields: ['name', 'value'],
imageMask: this.imageMask,
font: () => {return 'Verdana'},
size: [w, h], // The width and height settings are best based on imageMask Make adjustments
padding: 0,
timeInterval: 5000, // max execute time
rotate: 0,
/* rotate() {
return 0;
}, */
fontSize: (d: { value: number }) => { // <---- issue here!
console.log(d);
const size = ((d.value - min) / (max - min)) ** 2;
return size * (17.5 - 5) + 5;
},
});类型检查程序报告错误:
类型'(d:{ value: number }) =>号码‘不能指定为'number’
当然,仅仅分配一个数字值就可以解决线型问题,但是这里的目标是将传入的字体大小值转换成一个合适的大小。如何做到这一点,并满足类型检查?
谢谢!
打字:
位置: node_modules > @antv > data-set > lib > transform >tag-Cloud.ts
export interface Options {
fields?: [string, string];
font?(): string;
fontSize?: number;
rotate?: number;
padding?: number;
size?: [number, number];
spiral?: 'archimedean' | 'archimedean' | 'rectangular';
timeInterval?: number;
imageMask?: HTMLImageElement;
}发布于 2020-04-04 16:05:07
感谢@bergi,你指出打字中有一个错误!
打字内容如下:
export interface Options {
fields?: [string, string];
font?(): string;
fontSize?: number; // <---- the trouble!
rotate?: number;
padding?: number;
size?: [number, number];
spiral?: 'archimedean' | 'archimedean' | 'rectangular';
timeInterval?: number;
imageMask?: HTMLImageElement;
}现在我要说的是:
export interface Options {
fields?: [string, string];
font?(): string;
fontSize?({}): number; // <---- the fix!
rotate?: number;
padding?: number;
size?: [number, number];
spiral?: 'archimedean' | 'archimedean' | 'rectangular';
timeInterval?: number;
imageMask?: HTMLImageElement;
}以及更改财产分配,来自:
fontSize(d: { value: number }) {
const size = ((d.value - min) / (max - min)) ** 2;
return size * (17.5 - 5) + 5;
},至:
fontSize: (d: { value: number }) => {
const size = ((d.value - min) / (max - min)) ** 2;
return size * (17.5 - 5) + 5;
},看起来我需要看看是否有一个未解决的bug修复或者文件请求..。
https://stackoverflow.com/questions/61030410
复制相似问题