suggest primitives instead of wrappers

This commit is contained in:
Nathan Shively-Sanders 2021-09-30 13:12:17 -07:00
parent a734b84ed0
commit 8fd16baba1
2 changed files with 12 additions and 6 deletions

View file

@ -2115,16 +2115,23 @@ namespace ts {
suggestion = undefined;
}
if (suggestion) {
const suggestionName = symbolToString(suggestion);
let suggestionName = symbolToString(suggestion);
let elaborate = !!suggestion.valueDeclaration
if ((suggestionName === "String" || suggestionName === "Object" || suggestionName === "Number" || suggestionName === "BigInt" || suggestionName === "Symbol")
&& name !== suggestionName.toLowerCase()
&& name === (name as string).toLowerCase()) {
suggestionName = suggestionName.toLowerCase()
elaborate = false
}
const isUncheckedJS = isUncheckedJSSuggestion(originalLocation, suggestion, /*excludeClasses*/ false);
const message = isUncheckedJS ? Diagnostics.Could_not_find_name_0_Did_you_mean_1 : Diagnostics.Cannot_find_name_0_Did_you_mean_1;
const diagnostic = createError(errorLocation, message, diagnosticName(nameArg!), suggestionName);
addErrorOrSuggestion(!isUncheckedJS, diagnostic);
if (suggestion.valueDeclaration) {
if (elaborate) {
addRelatedInfo(
diagnostic,
createDiagnosticForNode(suggestion.valueDeclaration, Diagnostics._0_is_declared_here, suggestionName)
createDiagnosticForNode(suggestion.valueDeclaration!, Diagnostics._0_is_declared_here, suggestionName)
);
}
}

View file

@ -1,4 +1,4 @@
/a.js(3,15): error TS2552: Cannot find name 'sting'. Did you mean 'String'?
/a.js(3,15): error TS2552: Cannot find name 'sting'. Did you mean 'string'?
==== /a.js (1 errors) ====
@ -6,8 +6,7 @@
* @typedef MyType
* @property {sting} [x]
~~~~~
!!! error TS2552: Cannot find name 'sting'. Did you mean 'String'?
!!! related TS2728 /.ts/lib.es5.d.ts:530:13: 'String' is declared here.
!!! error TS2552: Cannot find name 'sting'. Did you mean 'string'?
*/
/** @param {MyType} p */