d2443a5df1
* @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.
72 lines
1.4 KiB
TypeScript
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>;
|