mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-12-12 03:20:56 -06:00
fix generate typenode from negative numerical literal (#30610)
This commit is contained in:
parent
bb1ac81bb1
commit
27075555c8
@ -3484,8 +3484,9 @@ namespace ts {
|
||||
return createLiteralTypeNode(setEmitFlags(createLiteral((<StringLiteralType>type).value), EmitFlags.NoAsciiEscaping));
|
||||
}
|
||||
if (type.flags & TypeFlags.NumberLiteral) {
|
||||
context.approximateLength += (("" + (<NumberLiteralType>type).value).length);
|
||||
return createLiteralTypeNode((createLiteral((<NumberLiteralType>type).value)));
|
||||
const value = (<NumberLiteralType>type).value;
|
||||
context.approximateLength += ("" + value).length;
|
||||
return createLiteralTypeNode(value < 0 ? createPrefix(SyntaxKind.MinusToken, createLiteral(-value)) : createLiteral(value));
|
||||
}
|
||||
if (type.flags & TypeFlags.BigIntLiteral) {
|
||||
context.approximateLength += (pseudoBigIntToString((<BigIntLiteralType>type).value).length) + 1;
|
||||
|
||||
@ -0,0 +1,9 @@
|
||||
|
||||
|
||||
/// <reference path='fourslash.ts' />
|
||||
|
||||
//// interface X { value: -1 | 0 | 1; }
|
||||
//// class Y implements X { }
|
||||
|
||||
// https://github.com/Microsoft/TypeScript/issues/30431
|
||||
verify.codeFixAvailable([{ description: "Implement interface 'X'" }]);
|
||||
9
tests/cases/fourslash/codeFixInferFromFunctionUsage.ts
Normal file
9
tests/cases/fourslash/codeFixInferFromFunctionUsage.ts
Normal file
@ -0,0 +1,9 @@
|
||||
/// <reference path='fourslash.ts' />
|
||||
|
||||
// @noImplicitAny: true
|
||||
////function wrap( [| arr |] ) {
|
||||
//// arr.sort(function (a: number, b: number) { return a < b ? -1 : 1 })
|
||||
//// }
|
||||
|
||||
// https://github.com/Microsoft/TypeScript/issues/29330
|
||||
verify.rangeAfterCodeFix("arr: { sort: (arg0: (a: number, b: number) => 1 | -1) => void; }");
|
||||
Loading…
x
Reference in New Issue
Block a user