711b4e778b
* Indirect calls for imported functions * Fix unit tests
43 lines
1.3 KiB
TypeScript
43 lines
1.3 KiB
TypeScript
//// [tests/cases/compiler/importTypeGenericArrowTypeParenthesized.ts] ////
|
|
|
|
//// [module.d.ts]
|
|
declare module "module" {
|
|
export interface Modifier<T> { }
|
|
|
|
export function fn<T>(x: T): Modifier<T>;
|
|
}
|
|
//// [index.ts]
|
|
import { fn } from "module";
|
|
|
|
export const fail1 = fn(<T>(x: T): T => x);
|
|
export const fail2 = fn(function<T>(x: T): T {
|
|
return x;
|
|
});
|
|
|
|
export const works1 = fn((x: number) => x);
|
|
type MakeItWork = <T>(x: T) => T;
|
|
export const works2 = fn<MakeItWork>(x => x);
|
|
|
|
|
|
//// [index.js]
|
|
"use strict";
|
|
exports.__esModule = true;
|
|
exports.works2 = exports.works1 = exports.fail2 = exports.fail1 = void 0;
|
|
var module_1 = require("module");
|
|
exports.fail1 = (0, module_1.fn)(function (x) { return x; });
|
|
exports.fail2 = (0, module_1.fn)(function (x) {
|
|
return x;
|
|
});
|
|
exports.works1 = (0, module_1.fn)(function (x) { return x; });
|
|
exports.works2 = (0, module_1.fn)(function (x) { return x; });
|
|
|
|
|
|
//// [index.d.ts]
|
|
/// <reference path="module.d.ts" />
|
|
export declare const fail1: import("module").Modifier<(<T>(x: T) => T)>;
|
|
export declare const fail2: import("module").Modifier<(<T>(x: T) => T)>;
|
|
export declare const works1: import("module").Modifier<(x: number) => number>;
|
|
declare type MakeItWork = <T>(x: T) => T;
|
|
export declare const works2: import("module").Modifier<MakeItWork>;
|
|
export {};
|