mirror of
https://github.com/swc-project/swc.git
synced 2024-11-24 10:12:42 +03:00
64 lines
1.2 KiB
TypeScript
64 lines
1.2 KiB
TypeScript
// @allowJs: true
|
|
// @checkJs: true
|
|
// @outDir: ./out
|
|
// @declaration: true
|
|
// @filename: index.js
|
|
module.exports.a = function a() {}
|
|
|
|
module.exports.b = function b() {}
|
|
module.exports.b.cat = "cat";
|
|
|
|
module.exports.c = function c() {}
|
|
module.exports.c.Cls = class {}
|
|
|
|
/**
|
|
* @param {number} a
|
|
* @param {number} b
|
|
* @return {string}
|
|
*/
|
|
module.exports.d = function d(a, b) { return /** @type {*} */(null); }
|
|
|
|
/**
|
|
* @template T,U
|
|
* @param {T} a
|
|
* @param {U} b
|
|
* @return {T & U}
|
|
*/
|
|
module.exports.e = function e(a, b) { return /** @type {*} */(null); }
|
|
|
|
/**
|
|
* @template T
|
|
* @param {T} a
|
|
*/
|
|
module.exports.f = function f(a) {
|
|
return a;
|
|
}
|
|
module.exports.f.self = module.exports.f;
|
|
|
|
/**
|
|
* @param {{x: string}} a
|
|
* @param {{y: typeof module.exports.b}} b
|
|
*/
|
|
function g(a, b) {
|
|
return a.x && b.y();
|
|
}
|
|
|
|
module.exports.g = g;
|
|
|
|
/**
|
|
* @param {{x: string}} a
|
|
* @param {{y: typeof module.exports.b}} b
|
|
*/
|
|
function hh(a, b) {
|
|
return a.x && b.y();
|
|
}
|
|
|
|
module.exports.h = hh;
|
|
|
|
module.exports.i = function i() {}
|
|
module.exports.ii = module.exports.i;
|
|
|
|
// note that this last one doesn't make much sense in cjs, since exports aren't hoisted bindings
|
|
module.exports.jj = module.exports.j;
|
|
module.exports.j = function j() {}
|