I want developers to use a class / interface instead of importing functions directly.
Is there a way to limit so only the class can import the function?
I don't want to have to put all the functions in a single file as it's not scalable in a large project
i.e. I don't want to use this pattern:
// myclass.ts
// no exports on the functions
function foo(){ ... }
function bar(){ ... }
export class MyClass {
Foo(){ return foo() }
Bar(){ return bar() }
}
What I'm trying to achieve:
// foo.ts
export function foo(){ ... }
// I want this to be private but it needs to be exported so the class below can use it
// bar.ts
export function bar() { ... }
// myclass.ts
import { foo } from 'foo';
import { bar } from 'bar';
export class MyClass {
Foo(){ return foo() }
Bar(){ return bar() }
}
// anyotherfile.ts
import { foo } from 'foo' // Stop from importing directly
import { MyClass } from 'myclass' // use this instead
question from:
https://stackoverflow.com/questions/65557884/in-typescript-is-there-a-way-to-restrict-limit-an-exported-function-so-it-can 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…