🦍

import・export チートシート

2022/10/07に公開

変数

export const name = "Mike";
export const age = 23;

または

const name = "Mike";
const age = 23;

export { name, age };
import { name, age } from "./sample1";
console.log(name, age);
//Mike 23

as

変数名を変更できる

const name = "Mike";
const age = 23;

export { name as mike, age };
import { mike, age } from "./sample1";
console.log(mike, age);
//Mike 23

または

const name = "Mike";
const age = 23;
export { name, age };
import { name as mike, age } from "./sample1";
console.log(mike, age);

関数

export const sayHello = () => {
  return "hello";
};
import { sayHello } from "./sample1";
console.log(sayHello());

defaultエクスポート

export default "default";
import aaa from "./sample1";
console.log(aaa);
//default

なんという変数名を付けるかは、import側で決めることができる。

両方ある場合

export const sayHello = () => {
  return "hello";
};

export default "default";
import aaa, { sayHello } from "./sample1";
console.log(sayHello());
console.log(aaa);
//hello
//default

これはReactとuseStateをimportするときによく見る。

defaultの正体

defaultエクスポートは、暗黙のうちに変数を用意して、defaultという名前でexportする機能。

つまり

const age 23;

export default { ages default }
import { default as old } from "./sample1";
//oldが使用できる

みたいなことが行われている。

type animal = {
  name: string;
  age: number;
};

const dog: animal = {
  name: "dog",
  age: 3,
};

export { animal, dog };
import { animal, dog } from "./sample1";
const myDog: animal = { ...dog };

型もexport/importできる。

type export

type animal = {
  name: string;
  age: number;
};

const dog: animal = {
  name: "dog",
  age: 3,
};

export type { animal, dog };
import { animal, dog } from "./sample1";

// error
const myDog1: animal = { ...dog };

const myDog2: typeof dog = {
  name: "dog",
  age: 3,
};

type export を使用すると、値として使用できなくなる。
type of とともに型として、使用できる。

type import

type animal = {
  name: string;
  age: number;
};

const dog: animal = {
  name: "dog",
  age: 3,
};

export { animal, dog };
import type { animal, dog } from "./sample1";

// error
const myDog1: animal = { ...dog };

const myDog2: typeof dog = {
  name: "dog",
  age: 3,
};

次のようにもかける

import type { animal } from "./sample1"
import { dog } from "./sample1"
import  { dog, type animal } from "./sample1"

* アスタリスク

一括インポート

const name = "Mike";
const age = 23;

export { name, age };
import * as xxx from "./sample1";
const age = xxx.age;
const name = xxx.name;
console.log(age, name);
//23 Mike

これはReactでよく見る。

import * as React from "react";
const [value,setValue] = React.useState()

Discussion