55 lines
845 B
TypeScript
55 lines
845 B
TypeScript
|
// @allowJs: true
|
||
|
// @checkJs: true
|
||
|
// @outDir: ./out
|
||
|
// @declaration: true
|
||
|
// @filename: index.js
|
||
|
|
||
|
export {}; // flag file as module
|
||
|
/**
|
||
|
* @typedef {string | number | symbol} PropName
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* Callback
|
||
|
*
|
||
|
* @callback NumberToStringCb
|
||
|
* @param {number} a
|
||
|
* @returns {string}
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* @template T
|
||
|
* @typedef {T & {name: string}} MixinName
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* Identity function
|
||
|
*
|
||
|
* @template T
|
||
|
* @callback Identity
|
||
|
* @param {T} x
|
||
|
* @returns {T}
|
||
|
*/
|
||
|
|
||
|
// @filename: mixed.js
|
||
|
/**
|
||
|
* @typedef {{x: string} | number | LocalThing | ExportedThing} SomeType
|
||
|
*/
|
||
|
/**
|
||
|
* @param {number} x
|
||
|
* @returns {SomeType}
|
||
|
*/
|
||
|
function doTheThing(x) {
|
||
|
return {x: ""+x};
|
||
|
}
|
||
|
class ExportedThing {
|
||
|
z = "ok"
|
||
|
}
|
||
|
module.exports = {
|
||
|
doTheThing,
|
||
|
ExportedThing,
|
||
|
};
|
||
|
class LocalThing {
|
||
|
y = "ok"
|
||
|
}
|