Closed
Description
TypeScript Version: master branch
Search Terms:
- exports hasOwnProperty
- helpers hasOwnProperty
Code
// @module: CommonJS
// @target: ES5
// @showEmit
// @filename: index.ts
import { assertArgs, assertObject } from "./types.js";
import { call } from "./func-util.js";
export const {
hasOwnProperty,
isPrototypeOf,
} = (({ hasOwnProperty, isPrototypeOf }) => {
return {
hasOwnProperty(target: object, property: PropertyKey) {
assertArgs(arguments.length, 2);
assertObject(target);
return call(hasOwnProperty, target, property);
},
isPrototypeOf(proto: object, target: any) {
assertArgs(arguments.length, 2);
assertObject(proto);
return call(isPrototypeOf, proto, target);
},
};
})(Object.prototype);
export * from "./func-util.js";
// @filename: func-util.d.ts
export function apply<T, A extends readonly unknown[], R>(
target: (this: T, ...args: A) => R,
thisArg: T,
args: Readonly<A>
): R;
export function call<T, A extends readonly unknown[], R>(
target: (this: T, ...args: A) => R,
thisArg: T,
...args: Readonly<A>
): R;
// @filename: types.d.ts
export function assertArgs(length: number, minLength: number): void;
export function assertObject(target: unknown): asserts target is object;
Expected behavior:
The above code works fine when transpiled.
Actual behavior:
The above code fails with an error at runtime when transpiled to non‑ESM.
Playground Link: 🔗
Related Issues: