TypeScript/tests/baselines/reference/jsDeclarationsClassImplementsGenericsSerialization.js
Nathan Shively-Sanders d2443a5df1
@typedef: Improve error spans from declaration emit (#42501)
* @typedef: Improve error spans from declaration emit

This is a proof-of-concept fix. I think it could be expanded for all of
jsdoc, but I only set it up for jsdoc type aliases. It could use a lot
of polish too.

* track error node in isSymbolAccessible instead

* Switch to using enclosingDeclaration

Remove trueErrorNode

* add test of @callback and @enum

* Better error + fix @enum error

Since enums don't have a name property, you *have* to call
`getNameOfDeclaration` to go looking through the AST for one.
2021-01-28 08:35:05 -08:00

72 lines
1.4 KiB
TypeScript

//// [tests/cases/conformance/jsdoc/declarations/jsDeclarationsClassImplementsGenericsSerialization.ts] ////
//// [interface.ts]
export interface Encoder<T> {
encode(value: T): Uint8Array
}
//// [lib.js]
/**
* @template T
* @implements {IEncoder<T>}
*/
export class Encoder {
/**
* @param {T} value
*/
encode(value) {
return new Uint8Array(0)
}
}
/**
* @template T
* @typedef {import('./interface').Encoder<T>} IEncoder
*/
//// [interface.js]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//// [lib.js]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Encoder = void 0;
/**
* @template T
* @implements {IEncoder<T>}
*/
var Encoder = /** @class */ (function () {
function Encoder() {
}
/**
* @param {T} value
*/
Encoder.prototype.encode = function (value) {
return new Uint8Array(0);
};
return Encoder;
}());
exports.Encoder = Encoder;
/**
* @template T
* @typedef {import('./interface').Encoder<T>} IEncoder
*/
//// [interface.d.ts]
export interface Encoder<T> {
encode(value: T): Uint8Array;
}
//// [lib.d.ts]
/**
* @template T
* @implements {IEncoder<T>}
*/
export class Encoder<T> implements IEncoder<T> {
/**
* @param {T} value
*/
encode(value: T): Uint8Array;
}
export type IEncoder<T> = import('./interface').Encoder<T>;