Skip to content
This repository has been archived by the owner on Aug 29, 2019. It is now read-only.

インターフェースの改善 #19

Open
h-matsuo opened this issue May 2, 2018 · 2 comments
Open

インターフェースの改善 #19

h-matsuo opened this issue May 2, 2018 · 2 comments
Assignees
Labels
enhancement New feature or request

Comments

@h-matsuo
Copy link
Owner

h-matsuo commented May 2, 2018

WHY

そもそも mapper / reducer は instantiate 必要ないし。
Hadoop を参考にする。

WHAT

改善する。

参考:

@h-matsuo h-matsuo added the enhancement New feature or request label May 2, 2018
@h-matsuo h-matsuo self-assigned this May 2, 2018
@h-matsuo
Copy link
Owner Author

h-matsuo commented May 2, 2018

Java で ClassName.class を利用するように,JS でも以下のことができることを確認した:

class Hello {
  constructor() {}
  sayHello() { console.log('hello!'); }
}
const exec = classObj => {
  new classObj().sayHello();
};
exec(Hello);
// => 'hello!'

@h-matsuo
Copy link
Owner Author

上記 classObj 引数について,この引数がクラス定義であることを表す型を書く際のヒント。

msgpack-lite モジュールの Codec.addExtPacker() も第 2 引数にクラス定義を渡すが,これの型定義(@types/msgpack-lite より)は以下のようになる。

Codec.addExtPacker<any>(etype: number, Class: new (...args: any[]) => any, packer: (t: any) => Buffer | Uint8Array): void

Class: new (...args: any[]) => any の部分に注目。

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant