mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
@@ -30833,6 +30833,10 @@ namespace ts {
|
||||
}
|
||||
}
|
||||
|
||||
function checkJSDocPropertyTag(node: JSDocPropertyTag) {
|
||||
checkSourceElement(node.typeExpression);
|
||||
}
|
||||
|
||||
function checkJSDocFunctionType(node: JSDocFunctionType): void {
|
||||
if (produceDiagnostics && !node.type && !isJSDocConstructSignature(node)) {
|
||||
reportImplicitAny(node, anyType);
|
||||
@@ -34362,6 +34366,8 @@ namespace ts {
|
||||
return checkJSDocTypeTag(node as JSDocTypeTag);
|
||||
case SyntaxKind.JSDocParameterTag:
|
||||
return checkJSDocParameterTag(node as JSDocParameterTag);
|
||||
case SyntaxKind.JSDocPropertyTag:
|
||||
return checkJSDocPropertyTag(node as JSDocPropertyTag);
|
||||
case SyntaxKind.JSDocFunctionType:
|
||||
checkJSDocFunctionType(node as JSDocFunctionType);
|
||||
// falls through
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
/a.js(3,15): error TS2304: Cannot find name 'sting'.
|
||||
|
||||
|
||||
==== /a.js (1 errors) ====
|
||||
/**
|
||||
* @typedef MyType
|
||||
* @property {sting} [x]
|
||||
~~~~~
|
||||
!!! error TS2304: Cannot find name 'sting'.
|
||||
*/
|
||||
|
||||
/** @param {MyType} p */
|
||||
export function f(p) { }
|
||||
|
||||
==== /b.js (0 errors) ====
|
||||
import { f } from "./a.js"
|
||||
f({ x: 42 })
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
=== /a.js ===
|
||||
/**
|
||||
* @typedef MyType
|
||||
* @property {sting} [x]
|
||||
*/
|
||||
|
||||
/** @param {MyType} p */
|
||||
export function f(p) { }
|
||||
>f : Symbol(f, Decl(a.js, 0, 0))
|
||||
>p : Symbol(p, Decl(a.js, 6, 18))
|
||||
|
||||
=== /b.js ===
|
||||
import { f } from "./a.js"
|
||||
>f : Symbol(f, Decl(b.js, 0, 8))
|
||||
|
||||
f({ x: 42 })
|
||||
>f : Symbol(f, Decl(b.js, 0, 8))
|
||||
>x : Symbol(x, Decl(b.js, 1, 3))
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
=== /a.js ===
|
||||
/**
|
||||
* @typedef MyType
|
||||
* @property {sting} [x]
|
||||
*/
|
||||
|
||||
/** @param {MyType} p */
|
||||
export function f(p) { }
|
||||
>f : (p: MyType) => void
|
||||
>p : MyType
|
||||
|
||||
=== /b.js ===
|
||||
import { f } from "./a.js"
|
||||
>f : (p: import("/a").MyType) => void
|
||||
|
||||
f({ x: 42 })
|
||||
>f({ x: 42 }) : void
|
||||
>f : (p: import("/a").MyType) => void
|
||||
>{ x: 42 } : { x: number; }
|
||||
>x : number
|
||||
>42 : 42
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
// @allowJs: true
|
||||
// @checkJs: true
|
||||
// @noEmit: true
|
||||
|
||||
// @Filename: /a.js
|
||||
/**
|
||||
* @typedef MyType
|
||||
* @property {sting} [x]
|
||||
*/
|
||||
|
||||
/** @param {MyType} p */
|
||||
export function f(p) { }
|
||||
|
||||
// @Filename: /b.js
|
||||
import { f } from "./a.js"
|
||||
f({ x: 42 })
|
||||
Reference in New Issue
Block a user