인프런 커뮤니티 질문&답변

승딱님의 프로필 이미지
승딱

작성한 질문수

Slack 클론 코딩[실시간 채팅 with React]

[7강] 파일 경로 문제 질문 들립니다. TS2769 : No overload matches this call.

작성

·

2.3K

0

7강 듣고 회원가입 페이지 보고싶은데 볼수가 없습니다

진행사항은 세팅에 있는 ts 파일 복사 해서 따른 폴더에 넣어놓고 시작 했습니다.

tsconfig.json 파일에 baseURL 부분이 "./setting" 이여서 저는 "." 로 바꿔 놓았습니다.(빌드한 이후에 바꿧습니다.)

그리고 @pages/Login 이런식으로 하면 Cannot find module '@pages/SignUp' or its corresponding type declarations.ts(2307)

이런 오류가 뜹니다. 

그리고 SignUp 에서 return 하는 부분에서는 vscode 사용중인데  좀 희미하게 뜹니다. 커서 올리면 밑에 에러가 보여요

Unreachable code detected.ts(7027)

현재 폴더 상황입니다.

따른거는 크게 다르게 한건 없다고 생각 하고요 빌드하는 부분이 강의랑 붙여온거랑 좀 다르긴 했습니다.

조언 주시면 감사하겠습니다.

답변 5

2

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

baseURL 부분은 .으로 수정했습니다.

return (

  <div>...</div>

);

로 () 감싸보세요.

승딱님의 프로필 이미지
승딱
질문자

그렇게 하니까 잘되네요ㅎㅎㅎ

헐 근데 저는 그괄호가 없어도 되는 괄호라고 알고 있었는데 아니였나보네요..

간단하게 설명 해주시면 감사드리겠습니다.

아니면 그냥 규칙인 부분인가요?

그리고

@pages/Login 이렇게 파일 불러오는 것도 안됬는데 지금은 됩니다.

그거바꾸니까 되는 건가요 아니면 한번 컴퓨터를 한번껏다가 켜서 되는건가요???

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

return

  <div>

이렇게 하셔서

엔진이

return; 으로 해석해서 끝내버린 것입니다.

return <div> 이렇게 했다면 괄호 없이도 됩니다.

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

signup 코드 보여주시고요. return이 여러 번 나오거나 그런 상황인 것 같습니다. webpack.config.ts 쪽도 확인해봐야 할 것 같습니다.

0

승딱님의 프로필 이미지
승딱
질문자

답변 감사드립니다.~ 복받으세요

0

승딱님의 프로필 이미지
승딱
질문자

import path from 'path';
import ReactRefreshWebpackPlugin from '@pmmmwh/react-refresh-webpack-plugin';
import webpack from 'webpack';
import ForkTsCheckerWebpackPlugin from 'fork-ts-checker-webpack-plugin';

const isDevelopment = process.env.NODE_ENV !== 'production';

const config: webpack.Configuration = {
  name: 'sleact',
  mode: isDevelopment ? 'development' : 'production',
  devtool: isDevelopment ? 'hidden-source-map' : 'inline-source-map',
  resolve: {
    extensions: ['.js', '.jsx', '.ts', '.tsx', '.json'],
    alias: {
      '@hooks': path.resolve(__dirname, 'hooks'),
      '@components': path.resolve(__dirname, 'components'),
      '@layouts': path.resolve(__dirname, 'layouts'),
      '@pages': path.resolve(__dirname, 'pages'),
      '@utils': path.resolve(__dirname, 'utils'),
      '@typings': path.resolve(__dirname, 'typings'),
    },
  },
  entry: {
    app: './client',
  },
  module: {
    rules: [
      {
        test: /\.tsx?$/,
        loader: 'babel-loader',
        options: {
          presets: [
            [
              '@babel/preset-env',
              {
                targets: { browsers: ['last 2 chrome versions'] },
                debug: isDevelopment,
              },
            ],
            '@babel/preset-react',
            '@babel/preset-typescript',
          ],
          env: {
            development: {
              plugins: [require.resolve('react-refresh/babel')],
            },
          },
        },
        exclude: path.join(__dirname, 'node_modules'),
      },
      {
        test: /\.css?$/,
        use: ['style-loader', 'css-loader'],
      },
    ],
  },
  plugins: [
    new ForkTsCheckerWebpackPlugin({
      async: false,
      // eslint: {
      //   files: "./src/**/*",
      // },
    }),
    new webpack.EnvironmentPlugin({ NODE_ENV: isDevelopment ? 'development' : 'production' }),
  ],
  output: {
    path: path.join(__dirname, 'dist'),
    filename: '[name].js',
    publicPath: '/dist/',
  },
  devServer: {
    historyApiFallback: true,
    port: 3090,
    publicPath: '/dist/',
  },
};

if (isDevelopment && config.plugins) {
  config.plugins.push(new webpack.HotModuleReplacementPlugin());
  config.plugins.push(new ReactRefreshWebpackPlugin());
}
if (!isDevelopment && config.plugins) {
}

export default config;

0

승딱님의 프로필 이미지
승딱
질문자

import React ,{useState,useCallback}from 'react'
import {Link, Redirect} from "react-router-dom"
import {Header,Form,Label,Input,Button,LinkContainer,Error,Success} from "./styles"

const SignUp = () => {
  const [email]=useState("")
  const [nickname]=useState("")
  const [password]=useState("")
  const [passwordCheck]=useState("")
  const onSubmit = useCallback(()=>{},[])
  const onChangeEmail = useCallback(()=>{},[])
  const onChangeNickname = useCallback(()=>{},[])
  const onChangePassword = useCallback(()=>{},[])
  const onChangePasswordCheck = useCallback(()=>{},[])
  return 
      <div id="container">
        <Header>Sleact</Header>
        <Form onSubmit={onSubmit}>
          <Label id="email-label">
            <span>이메일 주소</span>
            <div>
              <Input type="email" id="email" name="email" value={email} onChange={onChangeEmail} />
            </div>
          </Label>
          <Label id="nickname-label">
            <span>닉네임</span>
            <div>
              <Input type="text" id="nickname" name="nickname" value={nickname} onChange={onChangeNickname} />
            </div>
          </Label>
          <Label id="password-label">
            <span>비밀번호</span>
            <div>
              <Input type="password" id="password" name="password" value={password} onChange={onChangePassword} />
            </div>
          </Label>
          <Label id="password-check-label">
            <span>비밀번호 확인</span>
            <div>
              <Input
                type="password"
                id="password-check"
                name="password-check"
                value={passwordCheck}
                onChange={onChangePasswordCheck}
              />
            </div>
            {/* {mismatchError && <Error>비밀번호가 일치하지 않습니다.</Error>}
            {!nickname && <Error>닉네임을 입력해주세요.</Error>}
            {signUpError && <Error>{signUpError}</Error>}
            {signUpSuccess && <Success>회원가입되었습니다! 로그인해주세요.</Success>} */}
          </Label>
          <Button type="submit">회원가입</Button>
        </Form>
        <LinkContainer>
          이미 회원이신가요?&nbsp;
          <Link to="/login">로그인 하러가기</Link>
        </LinkContainer>
      </div>
}

export default SignUp
승딱님의 프로필 이미지
승딱

작성한 질문수

질문하기