-
Notifications
You must be signed in to change notification settings - Fork 326
Closed
Description
打包产物中缺少 .d.ts
文件,在 ts 项目中直接引用的 src/index.ts
文件的类型定义,执行 tsc 会直接编译 node_module 中 number-precison 的 index.ts,可能会产生错误。
例如在使用 ts 4.x,且开启了 noUncheckedIndexedAccess
编译选项时会产生下面的报错:
node_modules/number-precision/src/index.ts:22:16 - error TS2532: Object is possibly 'undefined'.
22 const len = (eSplit[0].split('.')[1] || '').length - +(eSplit[1] || 0);
~~~~~~~~~
node_modules/number-precision/src/index.ts:55:23 - error TS2345: Argument of type 'string | number | undefined' is not assignable to parameter of type 'string | number'.
Type 'undefined' is not assignable to type 'string | number'.
55 let res = operation(num1, num2);
~~~~
node_modules/number-precision/src/index.ts:73:35 - error TS2345: Argument of type 'string | number | undefined' is not assignable to parameter of type 'string | number'.
Type 'undefined' is not assignable to type 'string | number'.
73 const num1Changed = float2Fixed(num1);
~~~~
node_modules/number-precision/src/index.ts:74:35 - error TS2345: Argument of type 'string | number | undefined' is not assignable to parameter of type 'string | number'.
Type 'undefined' is not assignable to type 'string | number'.
74 const num2Changed = float2Fixed(num2);
~~~~
node_modules/number-precision/src/index.ts:75:31 - error TS2345: Argument of type 'string | number | undefined' is not assignable to parameter of type 'string | number'.
Type 'undefined' is not assignable to type 'string | number'.
75 const baseNum = digitLength(num1) + digitLength(num2);
~~~~
node_modules/number-precision/src/index.ts:75:51 - error TS2345: Argument of type 'string | number | undefined' is not assignable to parameter of type 'string | number'.
Type 'undefined' is not assignable to type 'string | number'.
75 const baseNum = digitLength(num1) + digitLength(num2);
~~~~
node_modules/number-precision/src/index.ts:93:53 - error TS2345: Argument of type 'string | number | undefined' is not assignable to parameter of type 'string | number'.
Type 'undefined' is not assignable to type 'string | number'.
93 const baseNum = Math.pow(10, Math.max(digitLength(num1), digitLength(num2)));
~~~~
node_modules/number-precision/src/index.ts:93:72 - error TS2345: Argument of type 'string | number | undefined' is not assignable to parameter of type 'string | number'.
Type 'undefined' is not assignable to type 'string | number'.
93 const baseNum = Math.pow(10, Math.max(digitLength(num1), digitLength(num2)));
~~~~
node_modules/number-precision/src/index.ts:95:17 - error TS2345: Argument of type 'string | number | undefined' is not assignable to parameter of type 'string | number'.
Type 'undefined' is not assignable to type 'string | number'.
95 return (times(num1, baseNum) + times(num2, baseNum)) / baseNum;
~~~~
node_modules/number-precision/src/index.ts:95:40 - error TS2345: Argument of type 'string | number | undefined' is not assignable to parameter of type 'string | number'.
Type 'undefined' is not assignable to type 'string | number'.
95 return (times(num1, baseNum) + times(num2, baseNum)) / baseNum;
~~~~
node_modules/number-precision/src/index.ts:107:53 - error TS2345: Argument of type 'string | number | undefined' is not assignable to parameter of type 'string | number'.
Type 'undefined' is not assignable to type 'string | number'.
107 const baseNum = Math.pow(10, Math.max(digitLength(num1), digitLength(num2)));
~~~~
node_modules/number-precision/src/index.ts:107:72 - error TS2345: Argument of type 'string | number | undefined' is not assignable to parameter of type 'string | number'.
Type 'undefined' is not assignable to type 'string | number'.
107 const baseNum = Math.pow(10, Math.max(digitLength(num1), digitLength(num2)));
~~~~
node_modules/number-precision/src/index.ts:108:17 - error TS2345: Argument of type 'string | number | undefined' is not assignable to parameter of type 'string | number'.
Type 'undefined' is not assignable to type 'string | number'.
108 return (times(num1, baseNum) - times(num2, baseNum)) / baseNum;
~~~~
node_modules/number-precision/src/index.ts:108:40 - error TS2345: Argument of type 'string | number | undefined' is not assignable to parameter of type 'string | number'.
Type 'undefined' is not assignable to type 'string | number'.
108 return (times(num1, baseNum) - times(num2, baseNum)) / baseNum;
~~~~
node_modules/number-precision/src/index.ts:120:35 - error TS2345: Argument of type 'string | number | undefined' is not assignable to parameter of type 'string | number'.
Type 'undefined' is not assignable to type 'string | number'.
120 const num1Changed = float2Fixed(num1);
~~~~
node_modules/number-precision/src/index.ts:121:35 - error TS2345: Argument of type 'string | number | undefined' is not assignable to parameter of type 'string | number'.
Type 'undefined' is not assignable to type 'string | number'.
121 const num2Changed = float2Fixed(num2);
~~~~
node_modules/number-precision/src/index.ts:125:74 - error TS2345: Argument of type 'string | number | undefined' is not assignable to parameter of type 'string | number'.
Type 'undefined' is not assignable to type 'string | number'.
125 return times(num1Changed / num2Changed, strip(Math.pow(10, digitLength(num2) - digitLength(num1))));
~~~~
node_modules/number-precision/src/index.ts:125:94 - error TS2345: Argument of type 'string | number | undefined' is not assignable to parameter of type 'string | number'.
Type 'undefined' is not assignable to type 'string | number'.
125 return times(num1Changed / num2Changed, strip(Math.pow(10, digitLength(num2) - digitLength(num1))));
~~~~
Found 18 errors.
因为 .ts 文件一旦被引用总会被 tsc 编译,无法被忽略,.d.ts 类型声明文件则可以被排除,因此希望可以加上类型声明文件的生成
参考:
Metadata
Metadata
Assignees
Labels
No labels